<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
        <input type="text" v-model.number="num1">
        <input type="text" v-model.number="num2">
        <span>和：{{ sum }}</span>
        <span>和：{{ sum }}</span>
        <span>和：{{ sum }}</span>
        <span>和：{{ sum }}</span>
        <span>和：{{ sum }}</span>


        <!-- <p>和：{{ fnSum() }}</p>
        <p>和：{{ fnSum() }}</p>
        <p>和：{{ fnSum() }}</p>
        <p>和：{{ fnSum() }}</p>
        <p>和：{{ fnSum() }}</p> -->
    </div>
    <script src="./vue.js"></script>
    <script>
      new Vue({
        el: '#app',
        data () {
          return {
            num1: 0,
            num2: 0
          }
        },
        methods: {
            fnSum () {
                console.log('函数的fnSum')
                return this.num1 + this.num2
            }
        },
        computed: {
            // 计算属性有缓存机制
            // 第一次使用计算属性，会调用，并计算得到一个结果，然后会把这个结果缓存起来
            // 后面每次都是直接从缓存里取的，直到计算属性里的任何一个依赖项发生改变，都会来重新调用计算属性
            // 并重新计算出新的结果，再把新的结果起来
            // 什么叫计算属性的依赖项？计算属性里用到的别的数据就叫依赖项
            // 像下面的计算属性，num1和num2都是依赖项
            sum () {
                console.log('sum计算属性被调用')
                return this.num1 + this. num2
            }
        }
      })
    </script>
  </body>
</html>
